/**
 * fileName: DaoActivity.java
 * fileTime: 2011-6-14上午10:56:46
 */
package com.bf.xpdd.persistent.iface;

import java.sql.SQLException;
import java.util.List;

import com.bf.xpdd.domain.ActivityBean;
import com.bf.xpdd.domain.SiteSeller;

/**
 * 活动对应的Dao 活动的动作：增加、删除、修改、停止
 * 
 * @author linmu
 * 
 */
public interface DaoActivity
{
	/**
	 * 查询当前用户所有的宝贝信息
	 */
	List<ActivityBean> queryAllActivities();
	
	/**
	 * 根据活动id查询活动信息
	 * @param aid
	 */
	ActivityBean queryActivityInfoById(long aid);
	
	/**
	 * 根据用户查询当前用户的所有活动信息
	 */
	List<ActivityBean> queryActivityInfoByNick(String nick);

	/**
	 * 增加活动
	 * @param bean
	 */
	void addActivity(ActivityBean bean);

	/**
	 * 删除活动
	 * @param bean 活动实例
	 */
	void delActivity(ActivityBean bean);

	/**
	 * 删除活动
	 * @param aid 活动id
	 */
	void delActivity(long aid);

	/**
	 * 修改活动
	 * @param bean
	 */
	void modifyActivity(ActivityBean bean);

	/**
	 * 修改活动状态,包括停止、结束
	 * @param aid 活动id
	 * @param status  需要修改的活动状态
	 * @param nick	活动创建者
	 */
	void modifyActivityStatus(int status, long aid, String nick);

	/**
	 * 活动参与人数增加 参加活动最大人数增加
	 * @param size 需要增加的活动人数
	 * @param aid 活动编号
	 * @param nick	活动创建者
	 */
	void addLoginSize(int size, long aid, String nick);

	/**
	 * 活动的成交人数增加,对应的历史纪录添加
	 * @param size 需要增加的成交人数
	 * @param aid 活动编号
	 * @param nick	活动创建者
	 */
	void addDealNum(int size, long aid, String nick);

	/**
	 * 修改活动的等级 活动隐私等级(所有人、所有淘宝注册用户、购买过本店商品的用户)
	 * @param scope
	 * @param aid 活动编号
	 * @param nick	活动创建者
	 */
	void modifyActivityScope(int scope, long aid, String nick);

	/**
	 * 修改是否开启帮忙
	 * @param isHelp
	 * @param aid 活动编号
	 * @param nick	活动创建者
	 */
	void modifyActivityHelp(boolean isHelp, long aid, String nick);

	/**
	 * 修改是否开启偷听
	 * @param isEave
	 * @param aid 活动编号
	 * @param nick	活动创建者
	 */
	void modifyActivityEave(boolean isEave, long aid, String nick);

	/**
	 * 修改是否开启收藏
	 * @param isFavorsite
	 * @param aid 活动编号
	 * @param nick	活动创建者
	 */
	void modifyActivityFavorsite(boolean isFavorsite, long aid, String nick);

	/**
	 * 修改是否开启分享
	 * @param isShare
	 * @param aid 活动编号
	 * @param nick	活动创建者
	 */
	void modifyActivityShare(boolean isShare, long aid, String nick);

	/**
	 * 分页查询数据库中活动记录
	 * @param pageNum 查询的页数
	 * @param pageSize 每页的记录条数
	 */
	List<ActivityBean> queryActivitiesByPage(int pageNum, int pageSize);

	/**
	 * 查询当月开始的活动
	 */
	List<ActivityBean> queryActivitiesByMonth(SiteSeller seller, int month) throws SQLException;

	/**
	 * 根据宝贝状态查询当前用户宝贝信息
	 */
	List<ActivityBean> queryActivitiesByStatus(String nick, int status);

	/**
	 * 查询当前用户所有宝贝中使用的模板id
	 */
	List<Long> queryAllModelIds(String nick);

	/**
	 * 根据模板id查询使用该模板的宝贝
	 */
	List<ActivityBean> queryActivityByModel(long modelId);

	/**
	 * 查询size个id不等于aid的活动
	 */
	List<ActivityBean> queryActivityLimit(long aid, String nick, int size);

}